package ar.uade.edu.fain.ad.server.dao.entity;

import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "ORDEN_COMPRA")
public class OrdenCompraEntity {

	@Id
	@GeneratedValue
	private Long id;

	@ManyToOne
	@JoinColumn(name = "idProveedor")
	private ProveedorEntity proveedor;

	@Column
	@Temporal(TemporalType.DATE)
	private Date fecha;

	public OrdenCompraEntity() {
		super();
	}

	@ManyToOne
	@JoinColumn(name = "idEmpleado")
	private EmpleadoEntity responsable;

	@ManyToOne
	@JoinColumn(name = "idAdministracion")
	private AdministracionEntity administracion;

	@Column
	private String estado = "pendiente";

	@OneToMany(fetch = FetchType.EAGER)
	@JoinColumn(name = "idOrdenCompra")
	private List<ItemOrdenCompraEntity> items;

	@ManyToOne
	@JoinColumn(name = "idDestino")
	private DepositoEntity destino;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public ProveedorEntity getProveedor() {
		return proveedor;
	}

	public void setProveedor(ProveedorEntity proveedor) {
		this.proveedor = proveedor;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public EmpleadoEntity getResponsable() {
		return responsable;
	}

	public void setResponsable(EmpleadoEntity responsable) {
		this.responsable = responsable;
	}

	public AdministracionEntity getAdministracion() {
		return administracion;
	}

	public void setAdministracion(AdministracionEntity administracion) {
		this.administracion = administracion;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public DepositoEntity getDestino() {
		return destino;
	}

	public void setDestino(DepositoEntity destino) {
		this.destino = destino;
	}

	public List<ItemOrdenCompraEntity> getItems() {
		return items;
	}

	public void setItems(List<ItemOrdenCompraEntity> items) {
		this.items = items;
	}
}
